Data stored in conventional high-speed random access memory ("RAM") may be accessed much faster (e.g., often about one hundred-thousand times faster) than data stored in conventional non-volatile memory. Accordingly, application program driver software often is configured to temporarily store data files in RAM for subsequent processing by one or more application programs. This use of RAM, which may be utilized as a RAM disk or a disk cache, significantly reduces file access time, thereby reducing the time required for processing the data.
Virtual memory operating systems (described below) often are configured to set aside a small amount of the RAM ("nonpaged pool memory") for temporarily storing data files as described above. The remainder of the RAM consequently is reserved for storing operating system code and executing operating system processes ("operating system RAM"). The nonpaged pool memory typically is much smaller than the operating system RAM, however, and therefore can become a bottleneck in the computer system if it is used to store too much data.
A virtual memory operating system generally is defined as an operating system that automatically pages (i.e., transfers) data between RAM and a hard disk when executing system processes. Paging data to and from the hard disk conserves space in the RAM, thus enabling the system to function as if the physical RAM were significantly larger than its actual size. The RAM in a computer system running a virtual memory operating system can be accessed only by a virtual memory manager module (a part of the operating system) that interfaces the driver software with the RAM. The virtual memory manager includes a nonpaged pool controller for accessing the nonpaged pool memory when a message is received from a driver requesting access to a file (or data) in the nonpaged pool.
One known virtual memory operating system, for example, is the Microsoft Windows NT.TM. operating system, Version 4.0 ("Microsoft Windows NT.TM."), distributed by Microsoft Corp. of Redmond, Wash. The operation of virtual memory operating systems, such as the Microsoft Windows NT.TM. operating system, is described in more detail in "Inside Windows NT", by Helen Custer, copyright 1993 by Microsoft Press, the disclosure of which is incorporated, in its entirety, by reference. As known in the art, Windows NT.TM. includes a virtual memory manager like those described above. This virtual memory manager utilizes a plurality of virtual memory manager functions to control access to system RAM.
As noted above, only a limited amount of space in the RAM is allocated to the nonpaged pool memory. For example, the Microsoft NT.TM. operating system permits a maximum of 192 megabytes of RAM space for the nonpaaged pool memory in a system having a four gigabyte or larger RAM. Accordingly, the operating system in such case reserves the remaining 3,808 megabytes for operating system RAM. Like other virtual memory operating systems, the Microsoft NT.TM. operating system requires a minimum of only sixteen megabytes of RAM to operate properly. The allocation of 3,808 megabytes for operating system RAM thus is not necessary.